↳ Prolog
↳ PrologToPiTRSProof
avg_in_gga(s(X), Y, Z) → U1_gga(X, Y, Z, avg_in_gga(X, s(Y), Z))
avg_in_gga(X, s(s(s(Y))), s(Z)) → U2_gga(X, Y, Z, avg_in_gga(s(X), Y, Z))
avg_in_gga(0, 0, 0) → avg_out_gga(0, 0, 0)
avg_in_gga(0, s(0), 0) → avg_out_gga(0, s(0), 0)
avg_in_gga(0, s(s(0)), s(0)) → avg_out_gga(0, s(s(0)), s(0))
U2_gga(X, Y, Z, avg_out_gga(s(X), Y, Z)) → avg_out_gga(X, s(s(s(Y))), s(Z))
U1_gga(X, Y, Z, avg_out_gga(X, s(Y), Z)) → avg_out_gga(s(X), Y, Z)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
avg_in_gga(s(X), Y, Z) → U1_gga(X, Y, Z, avg_in_gga(X, s(Y), Z))
avg_in_gga(X, s(s(s(Y))), s(Z)) → U2_gga(X, Y, Z, avg_in_gga(s(X), Y, Z))
avg_in_gga(0, 0, 0) → avg_out_gga(0, 0, 0)
avg_in_gga(0, s(0), 0) → avg_out_gga(0, s(0), 0)
avg_in_gga(0, s(s(0)), s(0)) → avg_out_gga(0, s(s(0)), s(0))
U2_gga(X, Y, Z, avg_out_gga(s(X), Y, Z)) → avg_out_gga(X, s(s(s(Y))), s(Z))
U1_gga(X, Y, Z, avg_out_gga(X, s(Y), Z)) → avg_out_gga(s(X), Y, Z)
AVG_IN_GGA(s(X), Y, Z) → U1_GGA(X, Y, Z, avg_in_gga(X, s(Y), Z))
AVG_IN_GGA(s(X), Y, Z) → AVG_IN_GGA(X, s(Y), Z)
AVG_IN_GGA(X, s(s(s(Y))), s(Z)) → U2_GGA(X, Y, Z, avg_in_gga(s(X), Y, Z))
AVG_IN_GGA(X, s(s(s(Y))), s(Z)) → AVG_IN_GGA(s(X), Y, Z)
avg_in_gga(s(X), Y, Z) → U1_gga(X, Y, Z, avg_in_gga(X, s(Y), Z))
avg_in_gga(X, s(s(s(Y))), s(Z)) → U2_gga(X, Y, Z, avg_in_gga(s(X), Y, Z))
avg_in_gga(0, 0, 0) → avg_out_gga(0, 0, 0)
avg_in_gga(0, s(0), 0) → avg_out_gga(0, s(0), 0)
avg_in_gga(0, s(s(0)), s(0)) → avg_out_gga(0, s(s(0)), s(0))
U2_gga(X, Y, Z, avg_out_gga(s(X), Y, Z)) → avg_out_gga(X, s(s(s(Y))), s(Z))
U1_gga(X, Y, Z, avg_out_gga(X, s(Y), Z)) → avg_out_gga(s(X), Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
AVG_IN_GGA(s(X), Y, Z) → U1_GGA(X, Y, Z, avg_in_gga(X, s(Y), Z))
AVG_IN_GGA(s(X), Y, Z) → AVG_IN_GGA(X, s(Y), Z)
AVG_IN_GGA(X, s(s(s(Y))), s(Z)) → U2_GGA(X, Y, Z, avg_in_gga(s(X), Y, Z))
AVG_IN_GGA(X, s(s(s(Y))), s(Z)) → AVG_IN_GGA(s(X), Y, Z)
avg_in_gga(s(X), Y, Z) → U1_gga(X, Y, Z, avg_in_gga(X, s(Y), Z))
avg_in_gga(X, s(s(s(Y))), s(Z)) → U2_gga(X, Y, Z, avg_in_gga(s(X), Y, Z))
avg_in_gga(0, 0, 0) → avg_out_gga(0, 0, 0)
avg_in_gga(0, s(0), 0) → avg_out_gga(0, s(0), 0)
avg_in_gga(0, s(s(0)), s(0)) → avg_out_gga(0, s(s(0)), s(0))
U2_gga(X, Y, Z, avg_out_gga(s(X), Y, Z)) → avg_out_gga(X, s(s(s(Y))), s(Z))
U1_gga(X, Y, Z, avg_out_gga(X, s(Y), Z)) → avg_out_gga(s(X), Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
AVG_IN_GGA(s(X), Y, Z) → AVG_IN_GGA(X, s(Y), Z)
AVG_IN_GGA(X, s(s(s(Y))), s(Z)) → AVG_IN_GGA(s(X), Y, Z)
avg_in_gga(s(X), Y, Z) → U1_gga(X, Y, Z, avg_in_gga(X, s(Y), Z))
avg_in_gga(X, s(s(s(Y))), s(Z)) → U2_gga(X, Y, Z, avg_in_gga(s(X), Y, Z))
avg_in_gga(0, 0, 0) → avg_out_gga(0, 0, 0)
avg_in_gga(0, s(0), 0) → avg_out_gga(0, s(0), 0)
avg_in_gga(0, s(s(0)), s(0)) → avg_out_gga(0, s(s(0)), s(0))
U2_gga(X, Y, Z, avg_out_gga(s(X), Y, Z)) → avg_out_gga(X, s(s(s(Y))), s(Z))
U1_gga(X, Y, Z, avg_out_gga(X, s(Y), Z)) → avg_out_gga(s(X), Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
AVG_IN_GGA(s(X), Y, Z) → AVG_IN_GGA(X, s(Y), Z)
AVG_IN_GGA(X, s(s(s(Y))), s(Z)) → AVG_IN_GGA(s(X), Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
AVG_IN_GGA(X, s(s(s(Y)))) → AVG_IN_GGA(s(X), Y)
AVG_IN_GGA(s(X), Y) → AVG_IN_GGA(X, s(Y))
AVG_IN_GGA(X, s(s(s(Y)))) → AVG_IN_GGA(s(X), Y)
POL(AVG_IN_GGA(x1, x2)) = 2·x1 + 2·x2
POL(s(x1)) = 2 + x1
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDPSizeChangeProof
AVG_IN_GGA(s(X), Y) → AVG_IN_GGA(X, s(Y))
From the DPs we obtained the following set of size-change graphs: